//
//  GGTabBar.m
//  Shengzhuli
//
//  Created by FXGuo on 2017/5/8.
//  Copyright © 2017年 kamangkeji. All rights reserved.
//

#import "GGTabBar.h"
#import "AddCoverView.h"
#import "SZLAccountHelper.h"
#import "SZLTabBarViewController.h"

@interface GGTabBar()

@property (nonatomic,weak) UIButton *plusBtn;

@end

@implementation GGTabBar

- (instancetype)initWithFrame:(CGRect)frame
{
    if (self = [super initWithFrame:frame]) {
        self.backgroundColor = [UIColor whiteColor];
//        [self setShadowImage:[UIImage imageWithColor:[UIColor clearColor]]];
        
//        UIButton *plusBtn = [[UIButton alloc] init];
//        [plusBtn setBackgroundImage:[UIImage imageNamed:@"皇冠_normal"] forState:UIControlStateNormal];
//        [plusBtn setBackgroundImage:[UIImage imageNamed:@"皇冠_normal"] forState:UIControlStateHighlighted];
//        [plusBtn sizeToFit];
//        self.plusBtn = plusBtn;
//        [plusBtn addTarget:self action:@selector(plusBtnDidClick) forControlEvents:UIControlEventTouchUpInside];
//        [self addSubview:plusBtn];
    }
    return self;
}

- (void)plusBtnDidClick
{
    if ([SZLAccountHelper shouldLogin])  return;
    SZLTabBarViewController *barVc = (SZLTabBarViewController *)[UIApplication sharedApplication].keyWindow.rootViewController;
    barVc.selectedIndex = 0;
    [[NSNotificationCenter defaultCenter]postNotificationName:@"KChangeToAdderSelect" object:nil];
//    AddCoverView *cover = [AddCoverView addCoverView];
//    cover.delegate = self.coverDelegate;
//    cover.frame = [UIScreen mainScreen].bounds;
//    cover.backgroundColor = RGBColorA(255, 255, 255, 0.9);
//    [[UIApplication sharedApplication].keyWindow addSubview:cover];
//    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
//        [cover showAnimation];
//    });
}
- (void)layoutSubviews {
    [super layoutSubviews];
    
//    self.plusBtn.center = CGPointMake(self.width*0.5, self.height*0.5-10);
//    
//    UILabel *label = [[UILabel alloc] init];
//    label.text = @"会员VIP";
//    label.font = [UIFont systemFontOfSize:12];
//    [label sizeToFit];
//    label.textColor = RGBColor(42, 41, 56);
//    [self addSubview:label];
//    label.centerX = self.plusBtn.centerX;
//    label.centerY = self.height - 8;
//    
//    Class class = NSClassFromString(@"UITabBarButton");
//    int btnIndex = 0;
//    for (UIView *btn in self.subviews) {
//        if ([btn isKindOfClass:class]) {
//            btn.width = self.width / 5;
//            btn.x = btn.width * btnIndex;
//            btnIndex++;
//            if (btnIndex == 2) {
//                btnIndex++;
//            }
//        }
//    }
}

//重写hitTest方法，去监听发布按钮的点击，目的是为了让凸出的部分点击也有反应
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
    
    //这一个判断是关键，不判断的话push到其他页面，点击发布按钮的位置也是会有反应的，这样就不好了
    //self.isHidden == NO 说明当前页面是有tabbar的，那么肯定是在导航控制器的根控制器页面
    //在导航控制器根控制器页面，那么我们就需要判断手指点击的位置是否在发布按钮身上
    //是的话让发布按钮自己处理点击事件，不是的话让系统去处理点击事件就可以了
    if (self.isHidden == NO) {
        //将当前tabbar的触摸点转换坐标系，转换到发布按钮的身上，生成一个新的点
        CGPoint newP = [self convertPoint:point toView:self.plusBtn];
        //判断如果这个新的点是在发布按钮身上，那么处理点击事件最合适的view就是发布按钮
        if ( [self.plusBtn pointInside:newP withEvent:event]) {
            return self.plusBtn;
        }else{//如果点不在发布按钮身上，直接让系统处理就可以了
            return [super hitTest:point withEvent:event];
        }
    }else {//tabbar隐藏了，那么说明已经push到其他的页面了，这个时候还是让系统去判断最合适的view处理就好了
        return [super hitTest:point withEvent:event];
    }
}


@end
